package cn.op.portal.utils;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;


import java.io.*;
import com.sun.image.codec.jpeg.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.*;
import javax.swing.*;

/**
 * @author lufei
 * 文字生成图片，目前生成的图片文字不清楚
 */
public class Word2Img {
/*	public void mkImg(String word) throws IOException{
		int width = 150;   
        int height = 50;   
           
        File file = new File("E:/Towel/name-xdm.gif");   
           
        Font font = new Font("幼圆", Font.BOLD, 20);   
        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
        Graphics2D g2 = (Graphics2D)bi.getGraphics();   
        g2.setBackground(Color.WHITE);   
        g2.clearRect(0, 0, width, height);   
        g2.setPaint(Color.RED);   
           
        FontRenderContext context = g2.getFontRenderContext();   
        Rectangle2D bounds = font.getStringBounds(word, context);   
        double x = (width - bounds.getWidth()) / 2;   
        double y = (height - bounds.getHeight()) / 2;   
        double ascent = -bounds.getY();   
        double baseY = y + ascent;   
           
        g2.drawString(word, (int)x, (int)baseY);   
           
        ImageIO.write(bi, "jpg", file); 
	}*/
	
	public void mkImg(String word) throws IOException{
	    //1.jpg是你的 主图片的路径
        InputStream is = new FileInputStream("E:/Towel/name-xdm.jpg");

        //通过JPEG图象流创建JPEG数据流解码器
        JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(is);
        //解码当前JPEG数据流，返回BufferedImage对象
        BufferedImage buffImg = jpegDecoder.decodeAsBufferedImage();
        //得到画笔对象
        Graphics g = buffImg.getGraphics();
        
        //创建你要附加的图象。
        //2.jpg是你的小图片的路径
//        ImageIcon imgIcon = new ImageIcon("2.jpg");    
        //得到Image对象。
//        Image img = imgIcon.getImage();       
        //将小图片绘到大图片上。
        //5,300 .表示你的小图片在大图片上的位置。
//        g.drawImage(img,5,330,null);
          
        //设置颜色。
        g.setColor(Color.BLACK);  
        
        //最后一个参数用来设置字体的大小
        Font f = new Font("幼圆",Font.BOLD,30);
        g.setFont(f);
        
        //10,20 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。
        g.drawString(word,10,30);  
        g.dispose();
        OutputStream os = new FileOutputStream("E:/Towel/union.jpg");
        
        //创键编码器，用于编码内存中的图象数据。
        JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
        en.encode(buffImg);
    
        is.close();
        os.close();
        System.out.println ("合成结束。。。。。。。。");
        
	}
	
	public static void main(String[] args) {
        String word = "印花毛巾"; 
        try {
			new Word2Img().mkImg(word);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
